/*
* Copyright 2025 NXP
* NXP Proprietary. This software is owned or controlled by NXP and may only be used strictly in
* accordance with the applicable license terms. By expressly accepting such terms or by downloading, installing,
* activating and/or otherwise using the software, you are agreeing that you have read, and that you agree to
* comply with and are bound by, such license terms.  If you do not agree to be bound by the applicable license
* terms, then you may not retain, install, activate or otherwise use the software.
*/

#ifndef GUI_GUIDER_H
#define GUI_GUIDER_H
#ifdef __cplusplus
extern "C" {
#endif

#include "lvgl.h"

typedef struct
{
  
	lv_obj_t *screen_main;
	bool screen_main_del;
	lv_obj_t *screen_main_btn_1;
	lv_obj_t *screen_main_btn_1_label;
	lv_obj_t *screen_main_btn_2;
	lv_obj_t *screen_main_btn_2_label;
	lv_obj_t *screen_main_btn_3;
	lv_obj_t *screen_main_btn_3_label;
	lv_obj_t *screen_main_img_1;
	lv_obj_t *screen_main_cont_1;
	lv_obj_t *screen_main_label_1;
	lv_obj_t *screen_main_label_3;
	lv_obj_t *screen_main_label_2;
	lv_obj_t *screen_main_label_4;
	lv_obj_t *screen_devinfo;
	bool screen_devinfo_del;
	lv_obj_t *screen_devinfo_btn_1;
	lv_obj_t *screen_devinfo_btn_1_label;
	lv_obj_t *screen_devinfo_line_1;
	lv_obj_t *screen_devinfo_label_1;
	lv_obj_t *screen_devinfo_label_2;
	lv_obj_t *screen_devinfo_label_3;
	lv_obj_t *screen_devinfo_label_4;
	lv_obj_t *screen_devinfo_label_5;
	lv_obj_t *screen_devinfo_label_6;
	lv_obj_t *screen_devinfo_label_7;
	lv_obj_t *screen_devinfo_label_8;
	lv_obj_t *screen_devinfo_label_9;
	lv_obj_t *screen_devinfo_label_10;
	lv_obj_t *screen_devinfo_label_11;
	lv_obj_t *screen_devinfo_label_12;
	lv_obj_t *screen_devinfo_label_13;
	lv_obj_t *screen_devinfo_label_14;
	lv_obj_t *screen_devinfo_label_15;
	lv_obj_t *screen_devinfo_label_16;
	lv_obj_t *screen_devinfo_label_17;
	lv_obj_t *screen_devinfo_label_18;
	lv_obj_t *screen_nodeinfo;
	bool screen_nodeinfo_del;
	lv_obj_t *screen_nodeinfo_cont_3;
	lv_obj_t *screen_nodeinfo_label_1;
	lv_obj_t *screen_nodeinfo_label_3;
	lv_obj_t *screen_nodeinfo_label_2;
	lv_obj_t *screen_nodeinfo_label_30;
	lv_obj_t *screen_nodeinfo_cont_5;
	lv_obj_t *screen_nodeinfo_label_12;
	lv_obj_t *screen_nodeinfo_label_15;
	lv_obj_t *screen_nodeinfo_label_17;
	lv_obj_t *screen_nodeinfo_label_27;
	lv_obj_t *screen_nodeinfo_label_33;
	lv_obj_t *screen_nodeinfo_label_39;
	lv_obj_t *screen_nodeinfo_line_1;
	lv_obj_t *screen_nodeinfo_btn_1;
	lv_obj_t *screen_nodeinfo_btn_1_label;
	lv_obj_t *screen_nodeinfo_cont_4;
	lv_obj_t *screen_nodeinfo_label_10;
	lv_obj_t *screen_nodeinfo_label_11;
	lv_obj_t *screen_nodeinfo_label_14;
	lv_obj_t *screen_nodeinfo_label_26;
	lv_obj_t *screen_nodeinfo_label_32;
	lv_obj_t *screen_nodeinfo_label_36;
	lv_obj_t *screen_nodeinfo_cont_6;
	lv_obj_t *screen_nodeinfo_label_13;
	lv_obj_t *screen_nodeinfo_label_16;
	lv_obj_t *screen_nodeinfo_label_18;
	lv_obj_t *screen_nodeinfo_label_28;
	lv_obj_t *screen_nodeinfo_label_34;
	lv_obj_t *screen_nodeinfo_label_40;
	lv_obj_t *screen_nodeinfo_cont_1;
	lv_obj_t *screen_nodeinfo_label_8;
	lv_obj_t *screen_nodeinfo_label_7;
	lv_obj_t *screen_nodeinfo_label_9;
	lv_obj_t *screen_nodeinfo_label_25;
	lv_obj_t *screen_nodeinfo_label_31;
	lv_obj_t *screen_nodeinfo_label_38;
	lv_obj_t *screen_nodeinfo_cont_2;
	lv_obj_t *screen_nodeinfo_label_4;
	lv_obj_t *screen_nodeinfo_label_6;
	lv_obj_t *screen_nodeinfo_label_5;
	lv_obj_t *screen_nodeinfo_label_20;
	lv_obj_t *screen_nodeinfo_label_29;
	lv_obj_t *screen_nodeinfo_label_37;
	lv_obj_t *screen_nodeinfo_label_19;
	lv_obj_t *screen_nodeinfo_btn_2;
	lv_obj_t *screen_nodeinfo_btn_2_label;
	lv_obj_t *screen_nodeinfo_label_35;
	lv_obj_t *screen_wifi;
	bool screen_wifi_del;
	lv_obj_t *screen_wifi_list_1;
	lv_obj_t *screen_wifi_list_1_item0;
	lv_obj_t *screen_wifi_list_1_item1;
	lv_obj_t *screen_wifi_list_1_item2;
	lv_obj_t *screen_wifi_btn_1;
	lv_obj_t *screen_wifi_btn_1_label;
	lv_obj_t *screen_wifipw;
	bool screen_wifipw_del;
	lv_obj_t *screen_wifipw_label_1;
	lv_obj_t *screen_wifipw_label_2;
	lv_obj_t *screen_wifipw_ta_1;
	lv_obj_t *screen_wifipw_btn_1;
	lv_obj_t *screen_wifipw_btn_1_label;
	lv_obj_t *screen_wifipw_btn_2;
	lv_obj_t *screen_wifipw_btn_2_label;
	lv_obj_t *g_kb_top_layer;
}lv_ui;

typedef void (*ui_setup_scr_t)(lv_ui * ui);

void ui_init_style(lv_style_t * style);

void ui_load_scr_animation(lv_ui *ui, lv_obj_t ** new_scr, bool new_scr_del, bool * old_scr_del, ui_setup_scr_t setup_scr,
                           lv_scr_load_anim_t anim_type, uint32_t time, uint32_t delay, bool is_clean, bool auto_del);

void ui_animation(void * var, int32_t duration, int32_t delay, int32_t start_value, int32_t end_value, lv_anim_path_cb_t path_cb,
                       uint16_t repeat_cnt, uint32_t repeat_delay, uint32_t playback_time, uint32_t playback_delay,
                       lv_anim_exec_xcb_t exec_cb, lv_anim_start_cb_t start_cb, lv_anim_ready_cb_t ready_cb, lv_anim_deleted_cb_t deleted_cb);


void init_scr_del_flag(lv_ui *ui);

void setup_ui(lv_ui *ui);

void init_keyboard(lv_ui *ui);

extern lv_ui guider_ui;


void setup_scr_screen_main(lv_ui *ui);
void setup_scr_screen_devinfo(lv_ui *ui);
void setup_scr_screen_nodeinfo(lv_ui *ui);
void setup_scr_screen_wifi(lv_ui *ui);
void setup_scr_screen_wifipw(lv_ui *ui);
LV_IMG_DECLARE(_4G_alpha_34x29);

LV_FONT_DECLARE(lv_font_SourceHanSerifSC_Regular_16)
LV_FONT_DECLARE(lv_font_SourceHanSerifSC_Regular_12)
LV_FONT_DECLARE(lv_font_SourceHanSerifSC_Regular_26)
LV_FONT_DECLARE(lv_font_SourceHanSerifSC_Regular_50)
LV_FONT_DECLARE(lv_font_SourceHanSerifSC_Regular_32)
LV_FONT_DECLARE(lv_font_SourceHanSerifSC_Regular_18)


#ifdef __cplusplus
}
#endif
#endif
